(define x 1+i)
(define y 1-i)
(+ x y)
(- x y)
(* x y)
(define x 1)

(define addone (lambda (x) (+ x 1)))
(addone x)

((lambda (x) x) 5)

`(list ,(+ 1 2) 4)
(let ((name 'a)) `(list ,name ',name))
`(a ,(+ 1 2) ,@(map abs '(4 -5 6)) b)
`((foo ,(- 10 3)) ,@(cdr '(c)) . ,(car '(cons)))

`#(10 5 ,(sqrt 4) ,@(map sqrt '(16 9)) 8)

`(a `(b ,(+ 1 2) ,(foo ,(+ 1 3) d) e) f)

(let ((name1 'x)
        (name2 'y))
    `(a `(b ,,name1 ,',name2 d) e))

(quasiquote (list (unquote (+ 1 2)) 4))

`(quasiquote (list (unquote (+ 1 2)) 4))

(define x '(1 2 3))
(define y '(1 2 3))
(check-equal? x y)

(define x (tup+ '(2 3) '(4 6)))
(define y '(6 9))
(check-equal? x y)
